import { app, BrowserWindow, globalShortcut } from "electron";
import { createRequire } from "node:module";
import { fileURLToPath } from "node:url";
import path from "node:path";
const require2 = createRequire(import.meta.url);
const __dirname = path.dirname(fileURLToPath(import.meta.url));
process.env.APP_ROOT = path.join(__dirname, "..");
const VITE_DEV_SERVER_URL = process.env["VITE_DEV_SERVER_URL"];
const MAIN_DIST = path.join(process.env.APP_ROOT, "dist-electron");
const RENDERER_DIST = path.join(process.env.APP_ROOT, "dist");
process.env.VITE_PUBLIC = VITE_DEV_SERVER_URL ? path.join(process.env.APP_ROOT, "public") : RENDERER_DIST;
let win;
function createWindow() {
  win = new BrowserWindow({
    icon: path.join(process.env.VITE_PUBLIC, "electron-vite.svg"),
    webPreferences: {
      preload: path.join(__dirname, "preload.mjs"),
      // 允许开发者工具
      devTools: true,
      // 开发环境下禁用web安全性，生产环境下启用
      webSecurity: process.env.NODE_ENV !== "development",
      // 启用上下文隔离
      contextIsolation: true,
      // 禁用远程模块 - 新版Electron中已移除，通过preload脚本实现
      // enableRemoteModule: false,
      // 启用沙箱
      sandbox: true,
      // 允许node集成
      nodeIntegration: false
    }
  });
  win.webContents.on("did-finish-load", () => {
    win == null ? void 0 : win.webContents.send("main-process-message", (/* @__PURE__ */ new Date()).toLocaleString());
  });
  if (VITE_DEV_SERVER_URL) {
    win.loadURL(VITE_DEV_SERVER_URL);
    win.webContents.openDevTools();
  } else {
    win.loadFile(path.join(RENDERER_DIST, "index.html"));
  }
  globalShortcut.register("F12", () => {
    win == null ? void 0 : win.webContents.toggleDevTools();
  });
}
app.on("window-all-closed", () => {
  if (process.platform !== "darwin") {
    app.quit();
    win = null;
  }
});
app.on("activate", () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});
app.whenReady().then(async () => {
  try {
    if (process.env.NODE_ENV === "development") {
      console.log("正在启动Vue DevTools...");
      const vueDevToolsPath = path.join(process.env.APP_ROOT, "node_modules", "@vue", "devtools");
      require2(vueDevToolsPath);
      console.log("Vue DevTools 已加载，将在单独窗口中显示");
    }
  } catch (e) {
    console.error("Failed to install Vue DevTools:", e);
  }
  createWindow();
});
export {
  MAIN_DIST,
  RENDERER_DIST,
  VITE_DEV_SERVER_URL
};
